#ifndef WIDGET_H
#define WIDGET_H
#include <iostream>
#include <QWidget>
#include <QKeyEvent>
#include <QPaintEvent>
#include <QPainter>
#include <QPushButton>
#include <QWidget>
#include "snake.h"
#include "barriar.h"
#include "enemys.h"
#include <QListWidget>

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
enum Direct{
DIR_LEFT,
DIR_RIGHT,
DIR_UP,
DIR_DOWN

};


class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
protected:
   //按键处理
   void keyPressEvent(QKeyEvent *event);
  //渲染绘图
   void paintEvent(QPaintEvent *event);
   //检查是否碰撞
   int checkContact();
   //增加奖励物品
    void addNewReward();
   //小方块的宽与高
   int nodeWidth=20;
   int nodeHeight=20;
   //奖品
   QRectF rewardNode;
   //创建蛇
   Snake m;
   //创建障碍物
   Barriar p;
   //设置判断是否结束游戏是否失败的参数
   int canshu=0;

   //设置障碍物变化参数
   int canhsu2=0;
   //设置时间间隔控制蛇的速度
   int sudu=200;
private:
    Ui::Widget *ui;
    int MoveFlag=DIR_UP;
    bool gameStart=false;
    //创建定时器
    QTimer *timer;
    int time=180;  //超出时间间隔 单位毫秒

public slots:
    void timeout();

};
#endif // WIDGET_H
